package com.xxyy.mylive.ui.manager;

/**
 * 视频播放管理器
 * Created by ado on 23:41 2016/10/20.
 */
public class VideoPlayManager {
//    private Activity mAc;
//    private PLVideoTextureView mVideoView;
//    private GifImageView loadingGif;
//
//    private AVOptions mOptions;
//
//    //是否是直播
//    private boolean isLive = false;
//
//
//    public VideoPlayManager(Activity ac, int resId, boolean isLive) {
//        mAc = ac;
//        this.isLive = isLive;
//
//        mVideoView = (PLVideoTextureView) ac.findViewById(resId);
//        //设置缓冲加载动画
//        loadingGif = (GifImageView) ac.findViewById(R.id.loading_gif_view);
//
//        initVideo();
//        setListener();
//    }
//
//
//    /**
//     * 初始化观看参数
//     */
//    private void initVideo() {
//        setLoadingGIf(loadingGif);
//        mOptions = new AVOptions();
//        initCommonParams();
//        if (isLive) {
//            //直播视频
//            initLiveParams();
//        } else {
//            //普通视频和vr视频
//            initVideoParams();
//        }
//
//        // 必须在开始播放之前配置Options
//        mVideoView.setAVOptions(mOptions);
//        mVideoView.start();
//    }
//
//    private void setListener() {
//        mVideoView.setOnPreparedListener((PLMediaPlayer.OnPreparedListener) mAc);
//        mVideoView.setOnInfoListener((PLMediaPlayer.OnInfoListener) mAc);
//        mVideoView.setOnCompletionListener((PLMediaPlayer.OnCompletionListener) mAc);
//        mVideoView.setOnErrorListener((PLMediaPlayer.OnErrorListener) mAc);
//    }
//
//    /**
//     * 通用播放配置
//     */
//    private void initCommonParams() {
//        // 解码方式，codec＝1，硬解; codec=0, 软解
//        // 默认值是：0
//        mOptions.setInteger(AVOptions.KEY_MEDIACODEC, 0);
//
//        // 准备超时时间，包括创建资源、建立连接、请求码流等，单位是 ms
//        // 默认值是：无
//        mOptions.setInteger(AVOptions.KEY_PREPARE_TIMEOUT, 10 * 1000);
//
//        // 读取视频流超时时间，单位是 ms
//        // 默认值是：10 * 1000
//        mOptions.setInteger(AVOptions.KEY_GET_AV_FRAME_TIMEOUT, 10 * 1000);
//
//        // 默认的缓存大小，单位是 ms
//        // 默认值是：2000
//        mOptions.setInteger(AVOptions.KEY_CACHE_BUFFER_DURATION, 2000);
//
//        // 最大的缓存大小，单位是 ms
//        // 默认值是：4000
//        mOptions.setInteger(AVOptions.KEY_MAX_CACHE_BUFFER_DURATION, 4000);
//
//        // 是否自动启动播放，如果设置为 1，则在调用 `prepareAsync` 或者 `setVideoPath` 之后自动启动播放，无需调用 `start()`
//        // 默认值是：1
//        mOptions.setInteger(AVOptions.KEY_START_ON_PREPARED, 1);
//    }
//
//    /**
//     * 普通视频配置
//     */
//    private void initVideoParams() {
//        //视频预览模式为4:3
//        mVideoView.setDisplayAspectRatio(PLVideoTextureView.ASPECT_RATIO_4_3);
//        setController();
//    }
//
//    /**
//     * 在线直播配置
//     */
//    private void initLiveParams() {
//        // 当前播放的是否为在线直播，如果是，则底层会有一些播放优化
//        // 默认值是：0
//        mOptions.setInteger(AVOptions.KEY_LIVE_STREAMING, 1);
//        // 是否开启"延时优化"，只在在线直播流中有效
//        // 默认值是：0
//        mOptions.setInteger(AVOptions.KEY_DELAY_OPTIMIZATION, 1);
//    }
//
//    /**
//     * 普通视频和VR使用播放控制
//     */
//    private void setController() {
//        boolean useFastForward = true;
//        boolean disableProgressBar = false;
//        TestMediaController mediaController = new TestMediaController(mAc, useFastForward, disableProgressBar);
//        mediaController.setMediaPlayer(mVideoView);
//        mVideoView.setMediaController(mediaController);
//    }
//
//    public void setPlayUrl(String playUrl) {
//        mVideoView.setVideoPath(playUrl);
//        mVideoView.start();
//    }
//
//    public void setLoadingGIf(View view) {
//        mVideoView.setBufferingIndicator(view);
//    }
//
//    public void startPlay() {
//        mVideoView.start();
//    }
//
//    public void stopPlay() {
//        if (mVideoView != null) {
//            mVideoView.stopPlayback();
//        }
//    }
//
//    public int getVideoOrientation() {
//        return mVideoView.getDisplayOrientation();
//    }
//
//    public void setRotate(int angle) {
//        mVideoView.setDisplayOrientation(angle);
//    }
//
//    public long getVideoTime() {
//        return mVideoView.getDuration();
//    }
//
//    public void get() {
//        TextureView textureView = mVideoView.getTextureView();
//    }
}
